#ifndef __APP_DECEIVE_H__
#define __APP_DECEIVE_H__
#include "app_buffer.h"
#include <pthread.h>

typedef struct 
{
    char* filename;
    int fd;
    Buffer * up_buffer;
    Buffer * down_buffer;
    pthread_t read_thread;
    int read_isRunning;//读线程是否在运行的标志
    long long last_write_time;//上一次写数据消耗的时间
    int (*post_read)(char* data,int len);//读取下游设备的蓝牙数据后，对数据进行处理（蓝牙数据->字符数组数据）
    int (*pre_write)(char* data,int len);//获取到远程数据后，转换成蓝牙设备的数据（字符数组数据->蓝牙数据）
}Device;

/**
 * 初始化
 */
Device *app_device_init(char *filename);

/**
 * 启动设备
 */
int app_device_start(void);

/**
 * 销毁设备
 */
void app_device_destroy(void);

#endif
